package com.onluy.frameworkcloud.tools.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.onluy.frameworkcloud.tools.DesUtils;

import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.ParseException;

public class UrlUtil {


    //解密URL  加上  加密后的JSON参数
    public static String DesUrlAddJsonObj (String resUrl,String spaKey,String desKey, JSONObject obj) throws ParseException {


        JSONObject  paramjson =new JSONObject();
        if(obj ==null){
            return  resUrl;
        }
        if(StringUtil.isBlank(spaKey)  ){
            spaKey="?key=";
        }
        String baseurl ;
        if (StringUtil.isBlank(resUrl)    ) {
            baseurl="";
            paramjson =new JSONObject();
        }
        else  if(resUrl.indexOf(spaKey)<0){
            baseurl=resUrl;
            paramjson =new JSONObject();
        }
        else {
            //解密原链接的请求参数
            baseurl = resUrl.substring(0, resUrl.indexOf(spaKey));
            String jsondatastr = resUrl.substring(resUrl.indexOf(spaKey) + 5);
            jsondatastr = URLDecoder.decode(URLDecoder.decode(jsondatastr));
            jsondatastr = DesUtils.dec2(jsondatastr, desKey);
            paramjson = JSON.parseObject(jsondatastr);
        }
        for(String key :obj.keySet()){
            paramjson.put(key,obj.get(key));
        }
        //加密
        String jsondatastr = JSON.toJSONString(paramjson);
        jsondatastr = DesUtils.enc2(jsondatastr,desKey);
        jsondatastr = URLEncoder.encode(URLEncoder.encode(jsondatastr));
        return baseurl + spaKey + jsondatastr;
    }


}
